import { createStore } from 'vuex'
import userInfo from './modules/userInfo'
export default createStore<any>({
    //store 初始化 vuex数据
    state:{
      num:1
    },
    //相当于计算
    getters:{
        getNum(state){
           return state.num
        }
    },
    //同步更改state
    //commit触发的是actions内的方法
    mutations:{
        addNum(state){
        state.num++
        },
        addNumByNumber(state,params){
        state.num+=params
        }
    },
    //异步更改state
    //dispatch触发的是actions内的方法
    actions:{
        addNum(context){
            return new Promise((resolve,reject)=>{
                //进行ajax请求
                //成功失败进行不同的操作
                context.commit("addNum")
                context.dispatch("actionChange",{name:'stark',age:18,sex:'男'})
            })
        },
        actionChange(context, stark){
            console.log(stark)
            console.log(stark.name)
            console.log(stark.age)
            console.log(stark.sex)
        },
        addNumByNumber(context,param){
            return new Promise((resolve,reject)=>{
                //进行ajax请求
                //成功失败进行不同的操作
                context.commit("addNumByNumber",param)
            })       
        }
    },
    modules:{
        userInfo
    }      
})